/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import bancoDados.ConexaoDB;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author tecnico
 */
public class Sabor {
    private int codigo;
    private String nome;
    private String ingredientes;
    private boolean tipo;
    private boolean ativo = true;

    public boolean isAtivo() {
        return ativo;
    }

    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getIngredientes() {
        return ingredientes;
    }

    public void setIngredientes(String ingredientes) {
        this.ingredientes = ingredientes;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public boolean isTipo() {
        return tipo;
    }

    public void setTipo(boolean tipo) {
        this.tipo = tipo;
    }

    public String isTipoTela() {
        if (this.tipo==false){
            return "Doce";
        }else{
            return "Salgado";
        }
    }

    public void salvar(){
        String sql;
        
        sql = "INSERT INTO sabor (nome, ingredientes, tipo, ativo) ";
        sql = sql + "VALUES ('" + this.nome + "','" + this.ingredientes + "'," + this.tipo + "," + this.ativo +"  );";
        
        ConexaoDB con = new ConexaoDB();
        con.executaComando(sql);
        
    }
    public void alterar(){
        String sql;
        
        sql = "UPDATE sabor SET nome='" + this.nome + "',";
        sql = sql + "ingredientes='" + this.ingredientes + "',";
        sql = sql + "ativo=" + this.ativo;
        sql = sql + " WHERE codigo=" + this.codigo + ";";
        
        ConexaoDB con = new ConexaoDB();
        con.executaComando(sql);
    }
    public ResultSet listar(){
        String sql;
        
        sql = "SELECT * FROM sabor;";

        ConexaoDB con = new ConexaoDB();
        return con.executaQuery(sql);
    }
    
    public ArrayList<Sabor> getAll() {         
        try {  
            ArrayList<Sabor> listAll = null;  
            Sabor sabor = null;              
            ConexaoDB con = new ConexaoDB();
            ResultSet rs;

            rs = con.executaQuery("SELECT * FROM sabor;");

            if (rs.next()) { //percorrendo os registros encontrados  
                listAll = new ArrayList<Sabor>();  
                do {                      
                    sabor = new Sabor();//instanciando objeto                                       

            /*setando atributos de acordo com os seus tipos primitivos*/     
                    sabor.setCodigo(rs.getInt("codigo"));
                    sabor.setNome(rs.getString("nome"));  
                    sabor.setIngredientes(rs.getString("ingredientes"));  
                    sabor.setTipo(rs.getBoolean("tipo"));  
                    sabor.setAtivo(rs.getBoolean("ativo"));  

                    listAll.add(sabor); //add a lista de objetos encontrados e setados  
                } while (rs.next());  
            }  
            rs.close();  
            return listAll; //retornando a lista de registros  
        } catch (Exception e) {  
            e.printStackTrace();  
            return null;  
        }  
    }
    
    public boolean excluir(int codigo){
        String sql;
        sql = "DELETE from sabor WHERE codigo=" + codigo +";";
        
        ConexaoDB con = new ConexaoDB();
        return con.executaComando(sql);
    }
    
    public Sabor buscar(String nome){
        try{
            String sql;
            ResultSet rs;

            sql = "SELECT * FROM sabor WHERE nome='" + nome + "';";

            ConexaoDB con = new ConexaoDB();
            rs =  con.executaQuery(sql);
            if (rs.first()){
                Sabor sabor = new Sabor();
                
                sabor.setCodigo(rs.getInt("codigo"));
                sabor.setNome(rs.getString("nome"));
                sabor.setIngredientes(rs.getString("ingredientes"));
                sabor.setTipo(rs.getBoolean("tipo"));
                sabor.setAtivo(rs.getBoolean("ativo"));
                
                return sabor;
            }else{
                return null;
            }
        }
        catch(SQLException e){
            e.printStackTrace();  
            return null;  
        }
    }
    
    public boolean podeExcluir(int codigo) {         
        try {  
            ConexaoDB con = new ConexaoDB();
            ResultSet rs;

            rs = con.executaQuery("SELECT * FROM pizza where codigo_sabor1=" + codigo +
                    " or codigo_sabor2=" + codigo + " or codigo_sabor3=" + codigo +
                    " or codigo_sabor4=" + codigo +
                     ";");
            
            rs.last();
            int i = rs.getRow();

            if (i>0) {
                return false;
            }else{  
                return true;
            }
        } catch (Exception e) {  
            e.printStackTrace();  
            return false;  
        }  
    }
}

